
Ext.define('Model.TipoAtributo', {
    extend: 'Ext.data.Model',
    fields: [ {
			name: 'tipoAtributo'
		}]
}); 

Ext.define('desarrollo.AtributoForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.atributoform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-atributos',
            frame: true,
            defaultType: 'textfield',
            bodyPadding: 15,
            fieldDefaults: {
                anchor: '100%',
            },
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                itemId: 'idAtributo',
                hidden: true,
            },{
                fieldLabel: 'Id',
                name: 'idTipoItem',
                type: 'int',
                itemId: 'idTipoItem',
                hidden: true,
            },{
                fieldLabel: 'Nombre',
                name: 'nombreAtributo',
                itemId: 'nombre',
            }, {
				xtype: 'textarea',
                fieldLabel: 'Descripcion',
                name: 'descripcion',
                itemId: 'descripcion',
            },{
				xtype: 'combobox',
				name: 'tipo',
				itemId: 'tipo',
				//value: 'Ninguno',
				fieldLabel: 'Tipo',
				displayField: 'tipoAtributo',
				//hidden: true,
				//disabled: true,
				//itemId: 'f_plantilla',
				store: Ext.create('Ext.data.Store', {
						model: 'Model.TipoAtributo',
						autoLoad: true,
						proxy: {
							type: 'ajax',
							url: 'listarTipoAtributo',
							reader: {
								type: 'json',
								successProperty: 'success',
								root: 'data',
								messageProperty: 'message'
							}
						}        
						
					}),
					   
				},{
                fieldLabel: 'Valor',
                name: 'valor',
                itemId: 'valor',
            }],
            dockedItems: [{
				xtype: 'toolbar',
				items: [
						{	//iconCls: 'icon-reset',	
											//text: 'Reset',	
											//tooltip:'Resetear el formulario',	
											//scope: this,	
											//handler: this.onReset
						},{
							iconCls: 'icon-save',
							itemId: 'save',
							text: '<b>Guardar</b>',
							hidden: true,
							scope: this, 
							handler: this.onSave
						}]
				},{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->',{
                    iconCls: 'icon-add',
                    itemId: 'create',
                    text: '<b>Crear</b>',
                    scope: this,
                    handler: this.onCreate
                }, {
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {

            this.down('#save').show();
            this.down('#create').hide();
            this.down('#tipo').hide();
                                   
            this.getForm().loadRecord(record);
        } else {

            this.down('#save').hide();
            this.down('#create').show();
            this.down('#tipo').show();
            //this.getForm().reset();
            this.down('#nombre').setValue("");
            this.down('#descripcion').setValue("");
            this.down('#idAtributo').setValue("");
            this.down('#tipo').setValue("");
            this.down('#valor').setValue("");
            
        }
    },

	
    onCreate: function(){
        var form = this.getForm();
                    form.submit({                        
                        url: 'crear_atributo',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
								this.down('#nombre').setValue("");
								this.down('#descripcion').setValue("");
								this.down('#idAtributo').setValue("");
								this.down('#tipo').setValue("");
								this.down('#valor').setValue("");
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Atributo creado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },
                        scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido crear el atributo', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
    
    onSave: function(){
        var form = this.getForm();
                    form.submit({                        
                        url: 'modificar_atributo',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
								this.down('#nombre').setValue("");
								this.down('#descripcion').setValue("");
								this.down('#idAtributo').setValue("");
								this.down('#tipo').setValue("");
								this.down('#valor').setValue("");
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Atributo modificado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.onReset();
							this.fireEvent('refresh');							                       
                        },
                        scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido modificar el atributo', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
     
    onReset: function(){
		//this.getForm().reset();
        this.setActiveRecord(null);        
        this.fireEvent('refresh');
    },

    
});
